﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace PMP
{
    public class ID3V2_3: ID3V2
    {
        private Dictionary<string, string> Frames_ID3V2_3 { get; set; }

        public ID3V2_3(string path)
            : base(path)
        {
            Frames_ID3V2_3 = new Dictionary<string, string>();
        }


        #region Privates
        bool HasTitleBeenRead { get; set; }
        bool HasAlbumBeenRead { get; set; }
        bool HasArtistBeenRead { get; set; }
        bool HasTrackBeenRead { get; set; }
        #endregion

        public override bool IsThisTagType
        {
            get
            {
                return true;
                throw new NotImplementedException();
            }
        }

        public override string Title
        {
            get
            {
                if (!HasTitleBeenRead)
                {
                    // read it
                }

                return (base.Title == default(string) ? TagReader.DefaultTitle : base.Title);
            }
            protected set
            {
                base.Title = value;
            }
        }

        public override string Album
        {
            get
            {
                if (!HasAlbumBeenRead)
                {
                    // read it
                }

                return (base.Album == default(string) ? TagReader.DefaultAlbum : base.Title);
            }
            protected set
            {
                base.Album = value;
            }
        }

        public override string Artist
        {
            get
            {
                if (!HasArtistBeenRead)
                {
                    // read it
                }

                return (base.Artist == default(string) ? TagReader.DefaultArtist : base.Artist);
            }
            protected set
            {
                base.Artist = value;
            }
        }

        public override int Track
        {
            get
            {
                if (!HasTrackBeenRead)
                {
                    // read it
                }

                return (base.Track == default(int) ? TagReader.DefaultTrack : base.Track);
            }
            protected set
            {
                base.Track = value;
            }
        }
    }
}
